package API_Demo01;

import java.util.ArrayList;
import java.util.Scanner;

public class Opeater {
    //定义一个菜品容器，里边装上菜品对象
    Foods food = new Foods();
    private ArrayList<Foods> f = new ArrayList<>();
    Scanner sc = new Scanner(System.in);
    //设计一个方法，用来上架菜品
    public void Add() {
        System.out.println("===============");
        System.out.println("请输入菜品名称");
        String name = sc.next();
        System.out.println("请输入菜品价格");
        double price = sc.nextDouble();
        System.out.println("请输入菜品描述");
        String desc = sc.next();
        // 创建新的菜品对象
        Foods food = new Foods();
        food.setName(name);
        food.setPrice(price);
        food.setDesc(desc);
        // 把菜品对象放到集合中去
        f.add(food);
        System.out.println("菜品上架成功~~~");
    }
    //设计一个方法用来显示菜品
    public void Show(){
        //遍历这个菜品对象容器，如果没有菜品对他进行一个拦截
        if (f.size() != 0) {
            for (int i = 0; i < f.size(); i++) {
                System.out.println("菜品名称："+f.get(i).getName());
                System.out.println("菜品价格："+f.get(i).getPrice());
                System.out.println("菜品描述："+f.get(i).getDesc());
            }
        }else {
            System.out.println("抱歉，没有菜品，请先上架~~~");
        }
    }
    //设计一个方法，用来判断菜品是否存在
    public int isexist(String name){
        //遍历这个菜品对象容器，查找要修改的菜品，找到返回它在容器中的位置，没找到返回-1
        for (int i = 0; i < f.size(); i++) {
            if (f.get(i).getName().equals(name)){
                return i;
            }

        }
        return -1;
    //return 0;
    }
    //设计一个方法，用来修改菜品信息
    public void modify (){
        System.out.println("请输入你要修改的菜品：");
        String name = sc.next();
        int ret = isexist(name);
        if (ret != -1) {
            System.out.println("找到菜品");
            System.out.println("请输入新的菜品名称：");
            String newname = sc.next();
            f.get(ret).setName(newname);
            System.out.println("请输入新的菜品价格");
            double prince = sc.nextDouble();
            f.get(ret).setPrice(prince);
            System.out.println("请输入新的菜品描述：");
            String desc = sc.next();
            f.get(ret).setDesc(desc);
            System.out.println("菜品修改成功~~~");
        }
    }
    //设计一个方法用来删除特定的菜品
    public void del(){
        //同样，通过判断要删除的菜品是否存在
        //调用isexist函数
        while (true) {
            System.out.println("请输入要删除的菜品名称：");
            String name = sc.next();
            int ret = isexist(name);
            if (ret != -1){
               Foods removefood =  f.remove(ret);
                System.out.println("删除菜品"+removefood+"成功");
                break;
            }
            System.out.println("菜品没有找到，请核实~~");
        }
    }
    //设计一个方法，用来查询并显示这个菜品
    public void showfood() {
        while (true) {
            System.out.println("请输入要查询的菜品名称：");
            String name = sc.next();
            boolean found = false;
            // 遍历这个对象容器，来查询菜品
            for (int i = 0; i < f.size(); i++) {
                if (f.get(i).getName().equals(name)) {
                    System.out.println("菜品名称：" + f.get(i).getName());
                    System.out.println("菜品价格：" + f.get(i).getPrice());
                    System.out.println("菜品描述：" + f.get(i).getDesc());
                    found = true;
                    break;
                }
            }
            if (!found) {
                System.out.println("没找到，请核实");
            } else {
                break; // 如果找到了菜品，则退出循环
            }
        }
    }
    //设计一个方法，用来清空菜品对象
    public void clean(){
        for (int i = 0; i < f.size(); i++) {
            f.remove(i);
        }
        System.out.println("清空菜品成功");
    }
    //设计一个方法，用来显示系统界面
    public void start(){
        while (true) {
            System.out.println("=====欢迎进入菜品管理系统=====");
            System.out.println("1、添加菜品");
            System.out.println("2、显示菜品");
            System.out.println("3、修改菜品");
            System.out.println("4、查找菜品");
            System.out.println("5、删除菜品");
            System.out.println("6、清空菜品");
            System.out.println("0、退出系统");
            System.out.println("请输入命令编号：");
            int code = sc.nextInt();
            switch (code){
                //添加菜品
                case 1:
                    Add();
                    break;
                //显示菜品
                case 2:
                    Show();
                    break;
                //修改菜品
                case 3:
                    modify();
                    break;
                //查找菜品
                case 4:
                    showfood();
                    break;
                //删除菜品
                case 5:
                    del();
                    break;
                //清空菜品
                case 6:
                    clean();
                    break;
                case 0:
                    System.out.println("欢迎下次使用~~");
                    return;
                default:
                    System.out.println("命令有误，重新输入：");
                    break;
            }

        }
    }
}
